/*******************************************************************/
/* @ All Rights Reserved Copyright (C) 2014 broada,Co.,Ltd.        */
/*                                                                 */
/*  NAME      = frprotocol_mng.h                                   */
/*  NOTE      = 协议库管理                                         */
/*  DATE      = 2014/10/27 yaohl                                   */
/*******************************************************************/

#ifndef __FRPROTO_MNG_H_
#define __FRPROTO_MNG_H_

#include "frlist.h"
#include "frmodule_mng.h"

int frproto_mng_init(void);
void frproto_mng_destory(void);

int frproto_define_enable(int i_ip_proto, u_int ui_ip, u_short us_port_start, u_short us_port_end);
int frproto_define_disable(int i_ip_proto, u_int ui_ip, u_short us_port_start, u_short us_port_end);

int frproto_known_add(int i_ip_proto, u_int ui_ip, u_short us_port_start, u_short us_port_end, Frmodule_mng *p_st_mng_module);
#define FRPROTO_KNOWN_ADD2(a,b,c,d) frproto_known_add(a,b,c,c,d)

int frproto_define_get(int i_ip_proto, u_int ui_ip, u_short us_port, L7_module **pp_st_l7_module, unsigned int *p_ui_ver);
int frproto_known_get(int i_ip_proto, u_int ui_ip, u_short us_port, L7_module **pp_st_l7_module);

int frproto_define_is_same(int i_ip_proto, u_int ui_ip, u_short us_port, unsigned int ui_ver);

void frproto_define_output(char **pp_result);
void frproto_known_output(char **pp_result);

int  frproto_priority_add(u_short us_port_start, u_short us_port_end, int i_l7_proto);
int  frproto_priority_del(int i_l7_proto);
void frproto_priority_output(char **pp_result);
int  frproto_get_chklist(int i_ip_proto, u_short us_port1, u_short us_port2, Frlist_header *p_lst_hdr_pri, Frlist_header *p_lst_hdr_general);

int frproto_cfg_load(int i_reload);

#endif
